|
a.out is a file format used in older versions of Unix-like computer operating systems for executables, object code, and, in later systems, shared libraries. The name stands for "assembler output", and was coined by Ken Thompson as the fixed name for output of his PDP-7 assembler in 1968.〔: "Thompson's PDP-7 assembler outdid even DEC's in simplicity; it evaluated expressions and emitted the corresponding bits. There were no libraries, no loader or link editor: the entire source of a program was presented to the assembler, and the output file—with a fixed name—that emerged was directly executable. (This name, ''a.out,'' explains a bit of Unix etymology; it is the output of the assembler. Even after the system gained a linker and a means of specifying another name explicitly, it was retained as the default executable result of a compilation.)" 〕 The term was subsequently applied to the format of the resulting file, to contrast with other formats for object code. "a.out" remains the default output file name for executables created by certain compilers and linkers when no output name is specified, even though the created files actually are not in the a.out format. == Use == An ''a.out'' format for the PDP-7, similar to the ''a.out'' format used on the PDP-11, appeared in the first edition of UNIX.〔 〕 It was superseded by the COFF format in AT&T Unix System V, which was in turn superseded by the ELF format in System V Release 4. Though Berkeley Unix continued using the ''a.out'' format for some time, modern BSD-systems have since switched to ELF. NetBSD/i386 switched formally from ''a.out'' to ELF in its 1.5 release. FreeBSD/i386 switched to ELF during the 2.2 to 3.0 transition. The ''a.out'' support for debug information is done through the use of special entries in the symbol table called stabs. The stabs format has also been used in many COFF and ELF variations. Linux also used ''a.out'' until kernel 1.2 (ELF support was added in the experimental 1.1.52), when it was superseded by ELF for that platform as well. Linux's transition to ELF was more or less forced due to the complex nature of building ''a.out'' shared libraries on that platform, which included the need to register the virtual address space at which the library was located with a central authority, as the ''a.out'' ld.so in Linux was unable to relocate shared libraries.〔 〕 The various BSD flavours were able to continue using ''a.out'' binaries long after Linux was forced to switch to ELF, due to the somewhat more flexible nature of the BSD ''a.out'' format compared to that of Linux.〔 〕〔 〕 MINIX 3 switched to ELF in the 3.2.0 release. 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「A.out」の詳細全文を読む スポンサード リンク
|